package service

import (
	"context"
	"insighttracking/query/dao"
	"insighttracking/query/model"
)

type _unitService struct{}

func (s _unitService) GetByIdListApi(ctx context.Context, list []int64) ([]*model.UnitEntity, error) {
	return dao.UnitEntity.WithContext(ctx).Where(dao.UnitEntity.ID.In(list...)).Find()
}

func (s _unitService) GetByNameApi(ctx context.Context, enterpriseId int64, name string) (*model.UnitEntity, error) {
	return dao.UnitEntity.WithContext(ctx).Where(dao.UnitEntity.EnterpriseID.Eq(enterpriseId), dao.UnitEntity.Name.Eq(name)).First()
}

func (s _unitService) CreateApi(ctx context.Context, m *model.UnitEntity) error {
	if err := dao.UnitEntity.WithContext(ctx).Create(m); err != nil {
		return err
	}
	return nil
}

func (s _unitService) ModifySortApi(ctx context.Context, tx *dao.QueryTx, id int64, sort int64) error {
	if _, err := tx.UnitEntity.WithContext(ctx).Where(dao.UnitEntity.ID.Eq(id)).UpdateSimple(
		dao.UnitEntity.Sort.Value(sort),
	); err != nil {
		return err
	}
	return nil
}

var UnitService = new(_unitService)
